<?php
/**
 * Вью для JSON
 * 
 * Класс для управления JSON отображением 
 * @author Anton Zavidov
 * @package myLiveShop
 */

//подключаем интерфейс
import('core.iview');
/**
 * Класс для управления JSON отображением
 *
 */
class ViewJson implements IView
{
	/**
	 * переменные для отображения
	 *
	 * @var array
	 */
	public $vars=array();
	/**
	 * определяем базовые переменные
	 *
	 */
	public function __construct()
	{
		new Base(__CLASS__);
		if(!isset($_GET['debug']))header('Content-type: text/plain charset=utf-8');
	}
	/**
	 * Устанавливаем значение переменной
	 *
	 * @param String $arg имя переменной
	 * @param unknown_type $value
	 */
	public function set($arg,$value){
        $this->vars[$arg]=$value;
	}
	/**
	 * Функция парсинга
	 *
	 * @param String $template имя темплейта (в данном случаем передавать безсмысленно)
	 */
	public function show($template='',$cache_cat=null){
		if(!isset($_GET['debug'])) echo json_encode($this->vars);
		else{
			echo '<pre>';
			print_r($this->vars);
			echo '</pre></body></html>';
		}
	}
	/**
	 * Устанавливаем значение всей переменной
	 *
	 * @param String $arg имя переменной
	 */
	public function setAll($value){
		$this->vars = $value;
	}
	/**
	 * Просмотр определённых переменных
	 *
	 */
	public function debug(){
	    pr($this->tpl_vars);
	}
    /**
     * Сжимаем табличные данные
     * 
     * @param array $data массив строк
     */
    public function tablePack($data){
        if(!is_array($data)) return $data;
        $headers = array();
        foreach ($data[0] as $k=>$i) $headers[] = $k;
        $list = array();
        foreach ($data as $item) {
            $d = array();
            foreach ($headers as $k) $d[] = $item[$k];
            $list[] = $d;
        }
        return array('tableData' => array($headers,$list));

    }
    public function result($errors = false) {
        $this->set('result',$errors ? 'error' : 'ok');
        if ($errors) $this->set('errors', $errors);
    }
}
?>